package org.example.shop_front_api.utils;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Md5Utils {
    /**
     * MD5加密方法
     * @param plainText 待加密的明文
     * @return 32位小写MD5值
     */
    public static String encrypt(String plainText) {
        try {
            // 获取MD5算法实例
            MessageDigest md = MessageDigest.getInstance("MD5");
            // 计算MD5摘要
            byte[] digest = md.digest(plainText.getBytes());
            // 将字节数组转换为十六进制字符串
            StringBuilder sb = new StringBuilder();
            for (byte b : digest) {
                String hex = String.format("%02x", b);
                sb.append(hex);
            }
            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            // 理论上不会出现此异常，因为MD5是标准算法
            throw new RuntimeException("MD5算法不可用", e);
        }
    }

    /**
     * 测试示例
     */
//    public static void main(String[] args) {
//        String password = "HelloWorld";
//        String encrypted = encrypt(password);
//        System.out.println("原始字符串: " + password);
//        System.out.println("MD5加密后: " + encrypted);
//    }
}